define(function(){

	/**
	 * 类继承
	 * @param  {[type]} subClass   子类
	 * @param  {[type]} superClass 父类
	 * @return {[type]}            [description]
	 */
	function extend(subClass, superClass){
		subClass.prototype = new superClass();
		subClass.constructor = subClass;
	}

	/**
	 * 给Dom节点绑定事件
	 * @param {[type]} element   dom对象
	 * @param {[type]} eventType 事件类型。如：click、change
	 * @param {[type]} func      对应事件触发的函数
	 */
	function bindEvent(element, eventType, func) {
		if (element.addEventListener) {
			element.addEventListener(eventType, func, false);
		} else if (element.attachEvent) {
			element.attachEvent('on' + eventType, func);
		} else {
			element['on' + eventType] = func;
		}
	}

	/**
	 * 删除dom节点绑定的事件
	 * @param {[type]} element   dom对象
	 * @param {[type]} eventType 事件类型。如：click、change
	 * @param {[type]} func      对应事件触发的函数
	 * @return {[type]}         [description]
	 */
	function removeEvent(element, eventType, handler) {
		if (element.removeEventListener) {
			element.removeEventListener(eventType, func, false);
		} else if (element.detachEvent) {
			element.detachEvent('on' + eventType, func);
		} else {
			element['on' + eventType] = null;
		}
	}


	window.Func = {
		extend:extend,
		bindEvent:bindEvent,
		removeEvent:removeEvent
	};
});